//package com.danciyixue.boot.client.audio.service.impl;
//
//import com.danciyixue.boot.dcyx.mapper.WordsMapper;
//import com.danciyixue.boot.dcyx.model.entity.Words;
//import com.danciyixue.boot.shared.file.service.impl.MinioFileService;
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.CommandLineRunner;
//import org.springframework.core.io.Resource;
//import org.springframework.core.io.ResourceLoader;
//import org.springframework.mock.web.MockMultipartFile;
//import org.springframework.stereotype.Component;
//import org.springframework.web.multipart.MultipartFile;
//
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.IOException;
//import java.nio.file.Files;
//import java.nio.file.Path;
//import java.nio.file.Paths;
//import java.util.List;
//
///**
// * 音频初始化服务
// * 用于将示例音频文件上传到 MinIO
// */
//@Component
//@RequiredArgsConstructor
//@Slf4j
//public class AudioInitService implements CommandLineRunner {
//
//    private final MinioFileService minioFileService;
//    private final WordsMapper wordsMapper;
//    private final ResourceLoader resourceLoader;
//
//    @Value("${app.audio.init-enabled:false}")
//    private boolean initEnabled;
//
//    @Override
//    public void run(String... args) {
//        if (!initEnabled) {
//            log.info("音频初始化服务已禁用");
//            return;
//        }
//
//        try {
//            log.info("开始初始化音频文件...");
//
//            // 获取示例音频文件
//            Path sampleAudioPath = Paths.get("temp/0628/good.mp3");
//            if (!Files.exists(sampleAudioPath)) {
//                log.warn("示例音频文件不存在: {}", sampleAudioPath);
//                return;
//            }
//
//            // 获取所有单词
//            List<Words> wordsList = wordsMapper.selectList(null);
//            log.info("找到 {} 个单词需要初始化音频", wordsList.size());
//
//            // 为每个单词上传音频文件
//            for (Words word : wordsList) {
//                String spelling = word.getSpelling().toLowerCase();
//                String audioFileName = spelling + ".mp3";
//
//                try {
//                    // 创建音频文件的MultipartFile
//                    File sampleFile = sampleAudioPath.toFile();
//                    FileInputStream input = new FileInputStream(sampleFile);
//                    MultipartFile audioFile = new MockMultipartFile(
//                            audioFileName,
//                            audioFileName,
//                            "audio/mpeg",
//                            input
//                    );
//
//                    // 上传到MinIO的audio文件夹
//                    minioFileService.uploadFileToFolder(audioFile, "audio");
//                    log.info("上传音频文件成功: {}", audioFileName);
//
//                    // 关闭输入流
//                    input.close();
//                } catch (Exception e) {
//                    log.error("上传音频文件失败: {}", audioFileName, e);
//                }
//            }
//
//            log.info("音频文件初始化完成");
//        } catch (Exception e) {
//            log.error("初始化音频文件失败", e);
//        }
//    }
//}